package com.psychologyCommunity.Community.dao;

import com.psychologyCommunity.Community.entity.DiscussPost;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface DiscussPostMapper {
    //按照userid 来查询 该用户发过的帖子 ，此时要拼到条件里
    //如果是首页 没有userid 那么应该是显示全部 ，此时不把userid这个条件拼到sql里
    //所以此时是 动态sql
    //offset是起始行的行号，limit指的是每一页最多显示多少数据；这两个参数都得拼进去
//    List<DiscussPost> selectPosts(int userid,int offset,int limit);//--在原来的基础上加一个按照 热度排 ，加一个参数，默认是0的话按原来的排，如果是1的话按照热度排
    List<DiscussPost> selectPosts(int userid,int offset,int limit,int orderMode);

    //为了方便将来看有多少页 拿当前数据库的帖子数量 /limit ,
    // 写一个方法 查贴子数（不管是某个人的贴子数还是整个数据库的贴子数）
    //用(@Param()注解给参数取别名--这为什么要加别名 (@Param("uid")?
    // 当sql需要用的动态拼接条件，这个条件if中需要使用唯一的参数 此时这个参数必须写别名
    int selectDiscussPostRow(@Param("uid") int userid);

    //插入一个帖子
    int insertDiscussPost(DiscussPost discussPost);

    //选出该用户的帖子 返回的是帖子
    DiscussPost selectDiscussPostById(int id);

    //更新discuss_post表的评论的数量
    int updateCommentCount(int id,int commentCount);

    int updateType(int id,int type);

    int updateStatus(int id,int status);

    int updateScore(int id,double score);
}